package model;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Consola{
	
	/**
	 * Retorna los tiempos de presa y de muerto del fantasma.
	 *  TODO - REFACTOR
	 * @return List<String>
	 */
	public static List<Integer> leerArchConfigTiemposFantasma(){
		File archivo = null;
		FileReader fr = null;
		BufferedReader br = null;
		List<Integer> tiemposFantasma=new ArrayList<Integer>();
		try {
			// Apertura del archivo y creacion de BufferedReader para poder hacer una lectura
            String curDir = System.getProperty("user.dir");
            curDir += "\\entrada\\"+Constantes.NOMBRE_ARCH_TIEMPOS_FANTASMA;
            archivo = new File (curDir);
            fr = new FileReader (archivo);
			br = new BufferedReader(fr);

			// Lectura del fichero
			int tiempoPresa=Integer.parseInt(br.readLine().split(":")[1]);
			int tiempoMuerto=Integer.parseInt(br.readLine().split(":")[1]);
			tiemposFantasma.add(tiempoPresa);
			tiemposFantasma.add(tiempoMuerto);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			// En el finally cerramos el archivo, para asegurarnos que se cierra tanto si va bien como si salta una excepcion.
			try{                    
				if(fr!= null){   
					fr.close(); 
				}     
				if(br != null){
					br.close();
				}
			}catch (Exception e2){ 
				e2.printStackTrace();
			}
		}
		return tiemposFantasma;
	}
		
	public static void main(String[] args) {
		List<Integer> tiemposFantasma=leerArchConfigTiemposFantasma();
		JuegoConsola juegoConsola =new JuegoConsola(tiemposFantasma.get(0),tiemposFantasma.get(1));
		Scanner in = new Scanner(System.in);
		
		//Comandos a ejecutar por consola morir,mover,comer,molestar,mostrarEstado,reiniciarEstado,convertirEnPresa;
		String comando = in.next();
		
		while(!comando.equalsIgnoreCase("salir")){
			String ret_val= juegoConsola.interactuarConFantasma(comando);
			System.out.println(ret_val);
			if(comando.equalsIgnoreCase("error")){
				comando="salir";
			}else{
				comando = in.next();
			}
		}	
		  
		in.close();
		System.exit(1);
	}
}
